import { fileURLToPath, URL } from 'node:url'

// 使用loadEnv方法，加载当前模式mode下对应的 .env 文件，获取文件中对应的环境变量
import { defineConfig,loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'


import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from '@vant/auto-import-resolver';

// https://vitejs.dev/config/
export default defineConfig((option)=>{
  let {mode} = option;

  // 项目启动文件  => 打印内容在终端中看
  // loadEnv()的第三参数  筛选以指定字符串开头的环境变量 如果设置为"" 或查询所有
  let env = loadEnv(mode,process.cwd(),"VITE_"); 

  console.log(111, option);
  console.log(222, mode);
  console.log(333, process.cwd()); // 项目启动的目录(项目所在的目录)
  console.log(444, env); // 

  


  return {
    plugins: [
      vue(),
      AutoImport({
        resolvers: [VantResolver()],
      }),
      Components({
        resolvers: [VantResolver()],
      }),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    },
    server: {
      host: "0.0.0.0",
      port: 7777,
  
      // 配置反向代理
      proxy: {
  
        /* 
           反向代理非常好用  => 仅限于开发环境(开发环境有本地服务器)  => 项目打包之后就变成了静态文件(html + css + js) ,没有脚手架的服务器环境
        */
        // /api 代理地址  => 凡是以 http:localhost:7777/api  地址开头的请求 都要做代理操作
        [env.VITE_APP_BASE_API]: { // 开发环境
          target: env.VITE_SERVE, // 目标地址(开发环境)  => 代理服务器需要向该地址发送请求
          changeOrigin: true,  // 是否跨域,
          rewrite: (path) => {  //  //路径重写，把'/api'替换为''
            // return path.replace(/^\/api/, "");
            // path.replace(new RegExp("^day$","ig"), "");
            return path.replace(new RegExp("^"+env.VITE_APP_BASE_API), "");
          }
        },
  
      }
    }
  }
})
